package com.company.creational.singleton_pattern;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

/**
 * 负载均衡器
 * @ClassName LoadBlancer
 * @Author tiezheng.han
 * @Date 2020/8/27 17:46
 **/
public class LoadBlancer {

    /**
     * 私有静态成员变量，存储唯一视力
     */
    private static LoadBlancer loadBlancer = null;
    /**
     * 服务器集合
     */
    private List serverList = null;

    /**
     * 私有构造函数
     */
    private LoadBlancer() {
        this.serverList = new ArrayList();
    }

    /**
     * 公有静态成员方法，返回唯一实例
     */
    public static LoadBlancer getLoadBlancer(){
        if (loadBlancer == null){
            loadBlancer = new LoadBlancer();
        }
        return loadBlancer;
    }

    /**
     * 添加服务器
     * @param server
     */
    public void addServer(String server){
        serverList.add(server);
    }

    /**
     * 删除服务器
     * @param server
     */
    public void removeServer(String server){
        serverList.remove(server);
    }

    /**
     * 使用 Random 类随机获取服务器
     */
    public String getServer(){
        Random random = new Random();
        int i = random.nextInt(serverList.size());
        return (String)serverList.get(i);
    }
}
